home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Micro on the Apple Volume 2 (1981)(Micro Ink).zip / Micro on the Apple Volume 2 (1981)(Micro Ink).do / COMPRESS.int < prev    next >
Text File  |  1996-12-24  |  3KB  |  98 lines

  1. 1 REM  ************************
  2. 2 REM  *                      *
  3. 3 REM  * PICTURE  COMPRESSION *
  4. 4 REM  *   BY ROBERT BISHOP   *
  5. 5 REM  *                      *
  6. 6 REM  *      COMPRESS        *
  7. 7 REM  *                      *
  8. 8 REM  *  COPYRIGHT (C) 1981  *
  9. 9 REM  *   MICRO INK, INC.    *
  10. 10 REM  * CHELMSFORD, MA 01824 *
  11. 11 REM  *  ALL RIGHTS RESERVED *
  12. 12 REM  *                      *
  13. 13 REM  ************************
  14. 14 REM 
  15. 15 DIM A$(40)
  16. 20 ANAL=11*256:SYN=ANAL+128:PRESS=4096+2*256+8*16
  17. 30 FLAG=0:XFLAG=0
  18. 50 PRINT "<CTRL-D>BLOAD PICT COMP"
  19. 100 CALL -936: POKE -16300,0: POKE -16303,0
  20. 110 TAB 17:PRINT "M E N U"
  21. 120 TAB 17:PRINT "-------":PRINT 
  22. 130 PRINT :PRINT "   L - LOAD PICTURE FROM DISK"
  23. 140 PRINT :PRINT "   A - ANALYZE PICTURE INTO PIXELS"
  24. 150 PRINT :PRINT "   S - SYNTHESIZE PICTURE FROM PIXELS"
  25. 160 PRINT :PRINT "   1 - DISPLAY ORIGINAL PICTURE"
  26. 170 PRINT :PRINT "   2 - DISPLAY SYNTHESIZED PICTURE"
  27. 180 PRINT :PRINT "   D - ISSUE DISK COMMANDS"
  28. 190 PRINT :PRINT "   X - SAVE COMPRESSED PICTURE TO DISK"
  29. 195 VTAB 20:PRINT "SELECTION: "
  30. 200 REM READ KEYBOARD
  31. 210 CHAR= PEEK (-16384)
  32. 220 IF CHAR<128 THEN 210
  33. 230  POKE -16384+16,0
  34. 300 ID=0
  35. 310 IF CHAR= ASC("L") THEN ID=1
  36. 320 IF CHAR= ASC("A") THEN ID=2
  37. 330 IF CHAR= ASC("S") THEN ID=3
  38. 340 IF CHAR= ASC("1") THEN ID=4
  39. 350 IF CHAR= ASC("2") THEN ID=5
  40. 360 IF CHAR= ASC("D") THEN ID=6
  41. 370 IF CHAR= ASC("X") THEN ID=7
  42. 400 IF ID=0 THEN 100
  43. 500 GOTO 1000*ID
  44. 1000 VTAB 20:TAB 12:CALL -958:PRINT "LOAD PICTURE"
  45. 1005  POKE -16300,0: POKE -16303,0
  46. 1010 VTAB 22:INPUT "FILE NAME: ",A$
  47. 1015 IF A$="" THEN 100
  48. 1020 VTAB 22:PRINT "<CTRL-D>BLOAD ";A$;",A$2000,D1"
  49. 1050 GOTO 100
  50. 2000 VTAB 20:TAB 12:CALL -958:PRINT "ANALYZE PICTURE"
  51. 2005  POKE -16300,0: POKE -16303,0
  52. 2010 VTAB 22:INPUT "MAX ERRORS/PIXEL:",MAXERR
  53. 2020  POKE 16,MAXERR:CALL ANAL
  54. 2025 FLAG=1:XFLAG=0:NUMBER=40* PEEK (8)+ PEEK (7)+1
  55. 2030 VTAB 22:PRINT "THERE ARE ";NUMBER;" PIXELS WITH MAX ERROR = ";MAXERR
  56. 2035  POKE -16384+16,0
  57. 2040 IF  PEEK (-16384)<128 THEN 2040
  58. 2050 GOTO 100
  59. 3000 VTAB 20:TAB 12:PRINT "SYNTHESIZE PICTURE"
  60. 3005  POKE -16300,0: POKE -16303,0:VTAB 22:CALL -958
  61. 3010 FOR K=1 TO 500:NEXT K
  62. 3020 IF FLAG THEN 3050
  63. 3030 VTAB 22:PRINT "THERE ARE NO PIXELS DEFINED YET!<CTRL-G>"
  64. 3040 GOTO 3060
  65. 3050 CALL SYN
  66. 3055 XFLAG=1
  67. 3060  POKE -16384+16,0
  68. 3070 IF  PEEK (-16384)<128 THEN 3070
  69. 3080 IF  PEEK (-16384)= ASC("1") THEN 210
  70. 3085 IF  PEEK (-16384)= ASC("2") THEN 210
  71. 3090 GOTO 100
  72. 4000  POKE -16304,0: POKE -16302,0: POKE -16300,0: POKE -16297,0
  73. 4050 GOTO 200
  74. 5000  POKE -16304,0: POKE -16302,0: POKE -16299,0: POKE -16297,0
  75. 5050 GOTO 200
  76. 6000 VTAB 20:TAB 12:CALL -958:PRINT "DISK COMMAND"
  77. 6005  POKE -16300,0: POKE -16303,0
  78. 6010 VTAB 22:INPUT ":",A$
  79. 6015 IF A$="" THEN 100
  80. 6020 VTAB 22:TAB 2:PRINT "<CTRL-D>";A$
  81. 6030 PRINT :PRINT :PRINT 
  82. 6040 GOTO 6010
  83. 7000 VTAB 20:TAB 12:CALL -958:PRINT "SAVE COMPRESSED PICTURE"
  84. 7005  POKE -16300,0: POKE -16303,0
  85. 7010 IF XFLAG THEN 7025
  86. 7015 VTAB 22:PRINT "NO PICTURE HAS BEEN SYNTHESIZED YET!<CTRL-G>"
  87. 7020 GOTO 7040
  88. 7025 IF NUMBER<=256 THEN 7060
  89. 7030 VTAB 22:PRINT "THERE ARE TOO MANY (";NUMBER;") PIXELS"
  90. 7040  POKE -16384+16,0
  91. 7045 IF  PEEK (-16384)<128 THEN 7045
  92. 7050 GOTO 100
  93. 7060 VTAB 22:INPUT "FILE NAME: ",A$
  94. 7065 IF A$="" THEN 100
  95. 7070 CALL PRESS
  96. 7080 VTAB 22:PRINT "<CTRL-D>BSAVE ";A$;",A$8000,L";960+2+8*NUMBER;",D2"
  97. 7090 GOTO 100
  98.